1. Field of the Invention
Various embodiments of the present invention relate to systems and methods to reduce I/O (input/output) with regard to out-of-core liner solvers and/or to speed up out-of-core linear solvers.
In one embodiment, a method for solving linear equations is provided. In this embodiment, the method is implemented in a computer system configured for one of: (i) single precision calculation; and (ii) double precision calculation, wherein the computer system includes at least a random access memory and a disk storage device. In this embodiment, the method comprises the steps of: applying an out-of-core linear solver process to a set of data, wherein at least one computation associated with the application of the linear solver process to the set of data generates at least one interim result; compressing, using a compression algorithm, the interim result associated with the linear solver process; storing the compressed interim result to the disk storage device; retrieving the stored compressed interim result from the disk storage device; decompressing the retrieved compressed interim result; and using the decompressed interim result in at least one further computation associated with the liner solver process; wherein the interim result is expressed in the form of at least: (i) an exponent e; and (ii) a significant value s; and wherein the compression algorithm comprises: compressing the exponent e associated with the interim result; determining a number of bits B used to represent the compressed exponent e; and rounding off the Y least significant bits of the significant value s associated with the interim result; wherein Y=K−(11−B) when the computer system is configured for double precision calculation and Y=K−(8−B) when the computer system is configured for single precision calculation; and wherein K is an integer in the range of between 11 and 52, inclusive, when the computer system is configured for double precision calculation and K is an integer in the range of between 8 and 23, inclusive, when the computer system is configured for single precision calculation.
2. Description of Related Art
Various “generic” data compression mechanisms are known. These include LZ77; Zip; Gzip; Bzip2; P7zip; and zcat and others.
Various publications regarding compression of floating point data and the like have been made. These include: “Fast Lossless Compression of Scientific Floating-Point Data”, Ratanaworabhan et al., 2006; ‘Fast and Efficient Compression of Floating-Point Data”, Lindstrom et al., 2006; “Streaming Compression of Triangle Meshes”, Isenburg et al., 2005; “JPEG2000 Compatible Lossless Coding of Floating-Point Data”, Usevitch, 2007; and “Enhancing MPI based applications performance and scalability by using adaptive compression”, Filgueira et al., 2010.
Various publications regarding the use of mixed precision and compression in conventional solvers and the like have been made. These include: “Using Mixed Precision for Sparse Matrix Computations to Enhance the Performance while Achieving 64-bit Accuracy”, Buttari et al., 2008; ‘A fast and robust mixed precision solver for the solution of sparse symmetric linear systems”, Hogg et al., 2008; “A note on the solve phase of a multicore solver”, Hogg et al., 2010; and “Accelerating Sparse Matrix Computations Via Data Compression”, Willcock et al., 2007.
Various patents regarding compression and the like have been published. These include: “Compression of limited range floating point numbers”, U.S. Pat. No. 6,253,222, Dyer et al.; “Automatic temporary precision reduction for enhanced compression”, U.S. Pat. No. 7,188,130, Luick.